home *** CD-ROM | disk | FTP | other *** search
/ Software Vault: The Games Collection 1 / software vault.zip / software vault / CDR10 / SPX20.ZIP / SPX_INT.ZIP / SPX_ES.INT < prev    next >
Text File  |  1993-09-16  |  2KB  |  61 lines

  1. Unit spx_es;
  2.  
  3. {$X+,O+ }
  4. { SPX Library Version 2.0  Copyright 1993 Scott D. Ramsay }
  5. {  For use with the SPX Library                         }
  6. { Allocates data to expanded or heap memory.  Great for }
  7. { sprite data.  Requires Turbo Vision unit: OBJECTS     }
  8.  
  9. Interface
  10.  
  11. Uses spx_vga,spx_fnc,Objects;
  12.  
  13. const
  14.   tempbuff  : pointer = nil;      { Temporary buffer }
  15.   temp_size : word = 0;           { Size of temporary buffer }
  16.  
  17. type
  18.   PMyEmsStream = ^TMyEmsStream;
  19.   TMyEmsStream = object(TEmsStream)
  20.                    procedure Error(Code, Info: Integer);virtual;
  21.                  end;
  22.   PEmsstack    = ^TEmsStack;
  23.   TEmsStack    = record
  24.                    stack   : PmyEmsStream;
  25.                    maxsize,                 { Size of allocated mem }
  26.                    flocator : longint;      { Size of used mem in maxSize }
  27.                  end;
  28.  { copies data to main memory }
  29.   PDyData      = ^TDyData;
  30.   TDyData      = object
  31.                    heapdta : pointer; { pointer to data in heap }
  32.                    size    : word;    { size of data }
  33.                    constructor init(var data;sz:word);
  34.                    destructor done;virtual;
  35.                    function getdata : pointer;virtual;
  36.                  end;
  37.  { copies data to ems memory(if available) or main memory }
  38.   PEmsDyData   = ^TEmsDyData;
  39.   TEmsDyData   = object(TDyData)
  40.                    useheap : boolean;   { TRUE - if using parent }
  41.                    emsoff  : longint;   { pointer to data in stream }
  42.                    emsstk  : PEMSstack; { pointer to EMS data stack }
  43.                    constructor init(var p:PEmsStack;var data;sz:word);
  44.                    destructor done;virtual;
  45.                    function getdata : pointer;virtual;
  46.                  end;
  47.  
  48. var
  49.   emsok     : boolean;          { TRUE - if ems is active and ok }
  50.   emscode   : integer;          { An standard ems code error if emsok=FALSE }
  51.  
  52. function CreateEmsStack(size:longint):PEmsStack;
  53. procedure DeleteEmsStack(var p:PEmsStack);
  54. function AddEmsStack(var p:PemsStack;var data;size:word):boolean;
  55. function ReadEmsStack(var p:PemsStack;position:longint;var data;size:word):boolean;
  56. procedure ChangeTempBuffer(size:word);
  57. procedure StackLoadVSP(fn:string;var buff;var p:PEmsStack;loadlow:boolean);
  58. function vp(var p:PEmsDyData):pointer;
  59.  
  60. Implementation
  61.